.PHONY : clean rebuild all

target := hello.out
CC := gcc

obj : main.o func.o

#使用模式规则替换，避免每一条.c都要写一个编译命令
$(obj) : %o : %c
	$(CC) -o $@ -c $^

$(target) : main.o func.o
	$(CC) -o $@ $^

all : $(target)

rebuild : clean all

clean : 
	rm -f *.o $(target)
